#include "stm32f10x.h"                  // Device header
#include "PWM.h"
#include "serial.h"
#define POSITIVE1 GPIO_Pin_4
#define NEGATIVE1 GPIO_Pin_5
#define POSITIVE2 GPIO_Pin_6
#define NEGATIVE2 GPIO_Pin_7

void Motor_Init()
{
	PWM_Init();
	GPIO_InitTypeDef GPIO_InitStructure;//设定GPIO结构体
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能APB2时钟
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//GPIO设置为推挽
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//Pin设置为PA4和5
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);//将设置的结构体的值传入
}

void Motor_SetSpeed1(int16_t Speed1)
{
	if(Speed1>=0)
	{
		GPIO_SetBits(GPIOA,POSITIVE1);
		GPIO_ResetBits(GPIOA,NEGATIVE1);
		PWM_SetCompare1(Speed1);
	}
	else
	{
		GPIO_SetBits(GPIOA,NEGATIVE1);
		GPIO_ResetBits(GPIOA,POSITIVE1);
		PWM_SetCompare1(-Speed1);
	}
}

void Motor_SetSpeed2(int16_t Speed2)
{
	if(Speed2>=0)
	{
		GPIO_ResetBits(GPIOA,POSITIVE2);
		GPIO_SetBits(GPIOA,NEGATIVE2);
		PWM_SetCompare3(Speed2);
	}
	else
	{
		GPIO_ResetBits(GPIOA,NEGATIVE2);
		GPIO_SetBits(GPIOA,POSITIVE2);
		PWM_SetCompare3(-Speed2);
	}
}

void forward(int16_t speed)
{
	Motor_SetSpeed1(speed);
	Motor_SetSpeed2(speed);
}

void Z_zhuanxiang(int16_t speed)
{
	Motor_SetSpeed1(-speed);
	Motor_SetSpeed2(speed);
}
void R_zhuanxiang(int16_t speed)
{
	Motor_SetSpeed1(speed);
	Motor_SetSpeed2(-speed);
}
